package gorseclient

type (
	GorseClient interface {
		CreateUser(fullUrl string, uid, labels, subscribe, comment string) error

		CreateItem(fullUrl string, itemId, comment, isHidden string, labels, category []string) error
		DeleteItem(fullUrl string, ids string) error
		UpdateItem(fullUrl string, itemId, comment, isHidden string, labels, category []string) error
		GetItemNeighbors(fullUrl, tid, uid, offset, pageSize string) (map[string]any, error)
		GetItemPopular(fullUrl, uid, offset, pageSize string) (map[string]any, error)
		GetItemLatest(fullUrl, uid, offset, pageSize string) (map[string]any, error)
		GetRecommendItemByCategory(fullUrl, uid, offset, pageSize, category string) (map[string]any, error)

		CreateFeedback(fullUrl string, itemId, uid, fType string) error
	}
	DefaultGorse struct{}
)

func NewGorseClient() GorseClient {
	return &DefaultGorse{}
}
